#pragma once
#include "crypto/algorithms/ialgorithm/FAQCipherAlgorithm.h"
namespace yzrilyzr_crypto{
	EBCLASS(Mode){
	public:
	Mode()=default;
	~Mode()=default;
	virtual yzrilyzr_array::ByteArray encrypt(const yzrilyzr_array::ByteArray & block, FAQCipherAlgorithm & algorithm)=0;
	virtual yzrilyzr_array::ByteArray encryptFinal(const yzrilyzr_array::ByteArray & block, FAQCipherAlgorithm & algorithm)=0;
	virtual yzrilyzr_array::ByteArray decrypt(const yzrilyzr_array::ByteArray & block, FAQCipherAlgorithm & algorithm)=0;
	virtual yzrilyzr_array::ByteArray decryptFinal(const yzrilyzr_array::ByteArray & block, FAQCipherAlgorithm & algorithm)=0;
	};

}